package com.taiji.dianthus.service.sys;

import com.taiji.dianthus.common.BusinessMessage;
import com.taiji.dianthus.domain.sys.DSysMenu;
import com.taiji.dianthus.domain.sys.DSysUser;
import com.taiji.dianthus.dto.UserDto;
import java.util.List;
import java.util.Map;

/**
 * @ClassName UserService
 * @Description
 * @Author H.M
 * @Date 2019/9/9
 */
public interface UserService {
    /**
     * 获取用户名
     * @param userCode
     * @return
     */
    String getNameByCode(String userCode);

    /**
     *
     * @param loginName
     * @return
     */
    DSysUser findByLoginName(String loginName);


    /**
     *
     * @param name
     * @param useLoginName
     * @param userPassword
     * @param userMail
     * @param userPhone
     * @param orgId
     * @param lastLoginTime
     * @return
     */
    BusinessMessage add( String name, String useLoginName, String userPassword,
                                String userMail, String userPhone, String orgId, String lastLoginTime);

    BusinessMessage add( String id ,String name, String useLoginName, String userPassword,
                         String userMail, String userPhone, String orgId, String lastLoginTime , String roleId);

    BusinessMessage add(UserDto userDto);
    /**
     * 删除
     * @param id
     * @return
     */
    BusinessMessage delete(String id);

    /**
     * 根据用户唯一码获取菜单
     * @param userId
     * @return
     */
    List<DSysMenu> listMenuByUser(String userId);

    /**
     * 获取列表
     * @param currentPage
     * @param pageSize
     * @return
     */
    BusinessMessage list(Integer currentPage, Integer pageSize);


    BusinessMessage list(Integer currentPage, Integer pageSize,String name,String phone);


    /**
     * 根据ID 获取
     * @param id
     * @return
     */
    DSysUser getById(String id);

    /**
     * 根据登录名查询数量
     * @param loginName
     * @return
     */
    Integer countByLoginName(String loginName);


    /**
     * 查询所有有组织的用户
     * @return
     */
    List<DSysUser> listUserHasOrg();


    /**
     * 根据id集合查询用户集
     * @param ids
     * @return
     */
    List<DSysUser> listByIds(List<String> ids);


    /**
     * 修改用户密码
     * @param userId
     * @param password
     * @return
     */
    BusinessMessage updatePassword(String userId,String password);

    /**
     * 查询用户总数
     * @return
     */
    Integer countUser();


    List<DSysUser> getUserByRoleId(String id);

    DSysUser getByPushId(String pushId);

    DSysUser save(DSysUser user);

    Integer countPushId(String pushId);

    List<DSysUser> getByOrgId(String id);

    Map<String,Object> getUserByPhone(String mobile);

    List<BusinessMessage> addSynBaseUser(String jsonArrayStr);

    List<BusinessMessage> updateSynBaseUser(String jsonArrayStr);

    List<BusinessMessage> deleteSynBaseUser(String jsonArrayStr);
}


